/**
 * 文件名：@RandomUtil.java <br/>
 * 包名：cn.efunbox.afw.core.util <br/>
 * 项目名：afw-core <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.core.util;

import java.util.Random;

/**
 * 类名：RandomUtil  <br />
 *
 * 功能：
 *
 * @author xtwin <br />
 * 创建时间：2016年8月10日 上午10:56:44  <br />
 * @version 2016年8月10日
 */
public class RandomUtil {

	// 随机数生成器
	private static Random random = new Random();
	
	/**
	 * 功能：取得一个整型值 <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2016年8月10日 上午10:57:56 <br/>
	 */
	public static int getInt() {
		return random.nextInt();
	}
	
	/**
	 * 功能： <br/>
	 *
	 * @author xtwin <br/>
	 * @version 2016年8月10日 上午10:59:46 <br/>
	 */
	public static int findInt(RandomFilter<Integer> filter) {
		do {
			// 取得一个整型值
			int value = random.nextInt();
			
			if (filter.accept(value)) {
				// 返回结果
				return value;
			}
		} while (true);
	}
	
	/**
	 * 类名：RandomFilter  <br />
	 *
	 * 功能：
	 *
	 * @author xtwin <br />
	 * 创建时间：2016年8月10日 上午10:59:11  <br />
	 * @version 2016年8月10日
	 */
	public static interface RandomFilter<T> {
		/**
		 * 功能： <br/>
		 *
		 * @author xtwin <br/>
		 * @version 2016年8月10日 上午11:00:28 <br/>
		 */
		boolean accept(T value);
	}
}
